From: Yuki Date: Sat, 1 Nov 2014 14:24:03 +0000 (+0800) Subject: Move style updates in AppIcon._onStateChanged out X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~1998 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=24c0a1a1d458c8d1ba1b9d3e728a27d347f7833f;p=gnome-shell.git Move style updates in AppIcon._onStateChanged out There is currently no simple way to inject into AppIcon's state change, so an extension that wants to do this has to destroy/remove/update all icons in the Shell (i.e. in the Dash, AllView, FrequentView) on enable() and disable() after updating AppIcon.prototype._onStateChange, or the extension must require a restart of the Shell. To solve this issue, we rename _onStateChanged to _updateRunningStyle, and connect the notify::state signal with an anonymous function that calls _updateRunningStyle. This extra function call should allow extensions to just extend the updateRunningStyle function in the prototype. https://bugzilla.gnome.org/show_bug.cgi?id=739497 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 4f182eccd..5a14aca9e 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -1562,10 +1562,11 @@ const AppIcon = new Lang.Class({ this.actor.connect('destroy', Lang.bind(this, this._onDestroy)); this._menuTimeoutId = 0; - this._stateChangedId = this.app.connect('notify::state', - Lang.bind(this, - this._onStateChanged)); - this._onStateChanged(); + this._stateChangedId = this.app.connect('notify::state', Lang.bind(this, + function () { + this._updateRunningStyle(); + })); + this._updateRunningStyle(); }, _onDestroy: function() { @@ -1586,7 +1587,7 @@ const AppIcon = new Lang.Class({ } }, - _onStateChanged: function() { + _updateRunningStyle: function() { if (this.app.state != Shell.AppState.STOPPED) this.actor.add_style_class_name('running'); else